package cn.com.open.itembank.dto;

import java.util.ArrayList;
import java.util.List;

/**
 * 策略结构.
 */
public class RuleStructure {
    /**
     * Instantiates a new Rule structure.
     */
    public RuleStructure() {
        this.ruleParts = new ArrayList<>();
        this.paperChapterScopeIDs = new ArrayList<>();
        this.fitnessFactorNum = 0;
    }

    /**
     * 策略模块（部分）列表.
     */
    private List<RulePart> ruleParts;

    /**
     * 策略章范围.
     */
    private List<String> paperChapterScopeIDs;

    /**
     * 适应度函数考虑的因素数目.
     */
    private Integer fitnessFactorNum;

    /**
     * Gets rule parts.
     *
     * @return the rule parts
     */
    public List<RulePart> getRuleParts() {
        if (ruleParts == null) {
            ruleParts = new ArrayList<>();
        }
        return ruleParts;
    }

    /**
     * Gets paper chapter scope i ds.
     *
     * @return the paper chapter scope i ds
     */
    public List<String> getPaperChapterScopeIDs() {
        if (paperChapterScopeIDs == null) {
            paperChapterScopeIDs = new ArrayList<>();
        }
        return paperChapterScopeIDs;
    }

    /**
     * Gets fitness factor num.
     *
     * @return the fitness factor num
     */
    public Integer getFitnessFactorNum() {
        return fitnessFactorNum;
    }

    /**
     * Sets fitness factor num.
     *
     * @param fitnessFactorNum the fitness factor num
     */
    public void setFitnessFactorNum(Integer fitnessFactorNum) {
        this.fitnessFactorNum = fitnessFactorNum;
    }
}
